package integracion;

import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.util.ArrayList;

import share.Actividad;

public class ActividadDAO
{

	private final Connection conn;

	public ActividadDAO (Connection conn)
	{
		this.conn = conn;
	}

	public boolean insert(Actividad actividad)
	{
		Statement ps;

		try
		{
			String consulta="INSERT INTO actividad VALUES ("+"null,'"+actividad.getNombre()+"',"+actividad.getDuracion()+","+actividad.getComponente()+");";
			System.out.println(consulta);
			ps = conn.createStatement();
			ps.executeUpdate(consulta);
		}
		catch (SQLException e)
		{

			e.printStackTrace();
		}

		return false;
	}

	public Actividad getActividadByNick(String nick)
	{
		PreparedStatement ps;
		try
		{
			ps = conn.prepareStatement("select * from actividad where nombre=?");
			ps.setString(2, nick);

			ResultSet rs = ps.executeQuery();
			if(rs.next())
			{
				Actividad actividad = new Actividad();
				actividad.setCodigo(rs.getInt("codigo"));
				actividad.setNombre(rs.getString("nombre"));
				actividad.setDuracion(rs.getInt("duracion"));
				actividad.setTarea(rs.getString("tarea"));
				actividad.setComponente(rs.getString("componente"));
				return actividad;
			}
		}
		catch (SQLException e)
		{
			e.printStackTrace();
		}
		return null;

	}

	public Actividad getActividadById(int codigo)
	{
		PreparedStatement ps;
		try
		{
			ps = conn.prepareStatement("select * from actividad where codigo=?");
			ps.setInt(1, codigo);

			ResultSet rs = ps.executeQuery();
			if(rs.next())
			{

				Actividad actividad = new Actividad();
				actividad.setCodigo(rs.getInt("codigo"));
				actividad.setNombre(rs.getString("nombre"));
				actividad.setDuracion(rs.getInt("duracion"));
				actividad.setComponente(rs.getString("componente"));
				return actividad;
			}
		}
		catch (SQLException e)
		{
			e.printStackTrace();
		}
		return null;

	}

	public boolean eliminarActividadId(int id)
	{
		PreparedStatement ps;
		try
		{
			ps = conn.prepareStatement("delete from actividad where codigo="+id+";");
			ps.executeUpdate();
			return true;

		}
		catch (SQLException e)
		{
			e.printStackTrace();
		}
		return false;

	}

	public void modificarActividad(Actividad actividad)
	{
		Statement ps;

		try
		{	String consulta="UPDATE actividad set nombre= '"+actividad.getNombre()+"',duracion= "+actividad.getDuracion()+", componente="+actividad.getComponente()+" where codigo= "+actividad.getCodigo()+";";
			System.out.println(consulta);
			ps = conn.createStatement();
			ps.executeUpdate(consulta);
		}
		catch (SQLException e)
		{

			e.printStackTrace();
		}

		return;
	}

	public ArrayList<Actividad> getLista()
	{
		ResultSet rs;
		try
		{
			rs = conn.createStatement().executeQuery("select * from actividad");
			ArrayList<Actividad> lista = new ArrayList<Actividad>();
			while(rs.next())
			{

				Actividad actividad = new Actividad();
				actividad.setCodigo(rs.getInt("codigo"));
				actividad.setNombre(rs.getString("nombre"));
				actividad.setDuracion(rs.getInt("duracion"));
				actividad.setComponente(rs.getString("componente"));

				lista.add(actividad);
			}
			return lista;
		}
		catch (SQLException e)
		{
			e.printStackTrace();
		}
		return null;

	}
}


